/**
  ******************************************************************************
  * @file    Core_board_Led.c 
  * @author  casy
  * @version V1.0
  * @Board   stm32 core board ,only one LED
  * @date    2014/12/29  

 */ 


#include "bsp_coreboard_led.h"

//LED IO初始化

void LED_Init(void)
{
  GPIO_InitTypeDef  GPIO_InitStructure;
	
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);	 //

  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);
  // 改变指定管脚的映射 JTAG-DP 禁用 + SW-DP 使能,从而PA15可以当做普通IO使用

//     @arg GPIO_Remap_SWJ_NoJTRST      : Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST
//     @arg GPIO_Remap_SWJ_JTAGDisable  : JTAG-DP Disabled and SW-DP Enabled
//    @arg GPIO_Remap_SWJ_Disable      : Full SWJ Disabled (JTAG-DP + SW-DP)
    
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;		//LED0-->PA.15
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 	//
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_Init(GPIOA, &GPIO_InitStructure);
 GPIO_SetBits(GPIOA,GPIO_Pin_15);		        //PA.15  core board LED

		 
 
}


uint8_t LED_Toggle(Led_TypeDef LEDX)
{
  uint8_t bitstatus = 0x00;
  switch(LEDX)
  {
     case  LED0:
      if((uint8_t)Bit_SET == GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_15)) 
        GPIO_ResetBits(GPIOA,GPIO_Pin_15) ;
      else
        GPIO_SetBits(GPIOA,GPIO_Pin_15);
      break;
      
    case  LED1:
      if((uint8_t)Bit_SET == GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_1)) 
        GPIO_ResetBits(GPIOB,GPIO_Pin_1) ;
      else
        GPIO_SetBits(GPIOB,GPIO_Pin_1);
      break;
      
    case  LED2:
        if((uint8_t)Bit_SET == GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_2)) 
        GPIO_ResetBits(GPIOB,GPIO_Pin_2) ;
      else
        GPIO_SetBits(GPIOB,GPIO_Pin_2);
      break;
      
    case  LED3: 
       if((uint8_t)Bit_SET == GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_3)) 
        GPIO_ResetBits(GPIOA,GPIO_Pin_3) ;
      else
        GPIO_SetBits(GPIOA,GPIO_Pin_3);
      break;
     
      default:
        break;
  }
 return bitstatus;
}





